﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ApuestaJMG.GUI.Contrato;
using Datos.Entidades;
using ApuestasJMG.GUI.Contrato;
using Logica.Comandos.ComandosAdministracionEvento;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;


namespace ApuestaJMG.GUI.Presentador
{
    // <summary>
    /// presentador para hacer las llamadas a las interfaces Evento
    /// </summary>
    /// <param name="usuario">Evento a insertar</param>
    
    public class PresentadorAgregarEvento
    {
         private IContratoAgregarEvento _crearEvento;
        // private IContratoAgregarParticipante _creacionParticipante;
         private List<Entidad> misCategorias = new List<Entidad>();
        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="creacionUsuario">
        /// Datos de la página de creación de usuario requeridos para crear un
        /// nuevo usuario
        /// </param>
        public PresentadorAgregarEvento
            (IContratoAgregarEvento creacionEvento)
        {
            _crearEvento = creacionEvento;
        }
        // <summary>
        /// procedimiento que obtiene una categoria 
        /// </summary>
        /// <param name="usuario">seleccion de categoria</param>
        /// <returns>lista de categorias</returns>
        public void obtenerCategoria()
        {
            Comando comando = FabricaComandoCategoria.CrearComandoListarCategoria();
            comando.Ejecutar();
            misCategorias = comando.ListaEntidad;
            if (misCategorias != null)
            {

                for (int i = 0; i < misCategorias.Count; i++)
                {

                    _crearEvento.Evento.Items.Add((misCategorias.ElementAt(i) as Categoria).NombreCategoria);


                }
                _crearEvento.Evento.DataBind();

            }

        }
        // <summary>
        /// procedimiento para insertar evento
        /// </summary>
        /// <param name="usuario">insertar datos evento</param>
        
        /// 
        public void InsertarEventoNuevo(int Posid)
        {

            Entidad crearEvento = FabricaEntidades.ObtenerEvento();
            Entidad agregarcat = FabricaEntidades.ObtenerCategoria();
     
            
            (crearEvento as Evento).NombreEvento = _crearEvento.Nombre.Text;
            (crearEvento as Evento).FK_Id_Categoria = (misCategorias.ElementAt(Posid) as Categoria).Id_Categoria;
            Comando comandoEvento = FabricaComandoEvento.ObtenerComandoInsertarEvento();
            comandoEvento.Entidad = crearEvento;
            Boolean respuestaUsuario = false;

            (comandoEvento as ComandoCrearEvento).Ejecutar();
            respuestaUsuario = comandoEvento.Flag;

        }


    }
}